// https://github.com/feross/clipboard-copy/blob/master/index.js

export default function clipboard(text) {
	if (navigator.clipboard) {
		return navigator.clipboard.writeText(text).catch(function (err) {
			throw err !== undefined
				? err
				: new DOMException("The request is not allowed", "NotAllowedError");
		});
	}

	const span = document.createElement("span");
	span.textContent = text;

	span.style.whiteSpace = "pre";

	document.body.appendChild(span);

	const selection = window.getSelection();
	const range = window.document.createRange();
	selection.removeAllRanges();
	range.selectNode(span);
	selection.addRange(range);

	let success = false;
	try {
		success = window.document.execCommand("copy");
	} catch (err) {
		// eslint-disable-next-line
		console.log("error", err);
	}

	selection.removeAllRanges();
	window.document.body.removeChild(span);

	return success
		? Promise.resolve()
		: Promise.reject(
				new DOMException("The request is not allowed", "NotAllowedError")
		  );
}
